home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr05 / xnot12a.zip / W3MISC.C < prev    next >
C/C++ Source or Header  |  1993-06-02  |  2KB  |  63 lines

  1. #include "jam.h"
  2. #include "def.h"
  3. #include "keyname.h"
  4. #include "kbd.h"
  5. #include "me.h"
  6. #include <sys/types.h>
  7. #include "stdio.h"
  8.  
  9. /* Code for startup banner/about dialog.
  10. *  That about says it all.
  11. */
  12. static HWND s_hdlg = NULL;
  13. static FARPROC s_lpBannerDlgProc = NULL;
  14.  
  15. /* This is the window proc for the startup dialog; it's pseudo
  16. * modal by virtue of me disabling the parent!
  17. */
  18. LRESULT WINAPI BannerDlgProc(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam)
  19. {
  20.   switch(msg)
  21.     {
  22.   case WM_COMMAND:
  23.       if (wParam == ID_OK)    /* what else could it be ? */
  24.         {
  25.           DestroyWindow(hdlg);
  26.           FreeProcInstance(s_lpBannerDlgProc);
  27.           EnableWindow(g_hWnd, TRUE);
  28.           if (!IsIconic(g_hWnd))
  29.             SetActiveWindow(g_hWnd);
  30.           return(TRUE); 
  31.         }
  32.     }
  33.   return((LRESULT)FALSE);
  34. }
  35.  
  36. /* This is called via the About choice in the system menu, about..
  37. * choice under Help in the window menu and on startup for first time 
  38. * users. For that reason, it shouldn't be modal the regular way because it 
  39. * would halt all activity of emacs on startup.
  40. */
  41. VOID MakeBanner()
  42. {
  43.   int screen_cx, screen_cy;
  44.   int hdlg_cx, hdlg_cy;
  45.   RECT rect;
  46.  
  47.   s_lpBannerDlgProc = MakeProcInstance((FARPROC)BannerDlgProc,  g_hInstance);
  48.   s_hdlg = CreateDialog(g_hInstance, "BANNER", NULL, s_lpBannerDlgProc);
  49.  
  50.   screen_cx = GetSystemMetrics(SM_CXSCREEN);
  51.   screen_cy = GetSystemMetrics(SM_CYSCREEN);
  52.   GetWindowRect(s_hdlg, &rect);
  53.   hdlg_cx = rect.right - rect.left;
  54.   hdlg_cy = rect.bottom - rect.top;
  55.  
  56.   MoveWindow(s_hdlg, (screen_cx-hdlg_cx)/2, (screen_cy-hdlg_cy)/2,
  57.              hdlg_cx, hdlg_cy, TRUE);
  58.   ShowWindow(s_hdlg, SW_SHOW);
  59.   UpdateWindow(s_hdlg);
  60.   EnableWindow(g_hWnd, FALSE);
  61. }
  62.  
  63.